package base.data;

import base.model.GoodsBaseModel;

import java.util.List;
import java.util.Map;

/**
 * 商品信息数据存放，使用集合进行存储数据
 *
 * @author Kcjuly
 * @date 2024-04-25
 *
 */
public abstract class GoodsBaseData {

    /**自定义集合方式,或选择参考案例模式之一
     * 例如使用ArrayList
     * 继承并实现抽象方法，实现数据增删查改，
     * Object 在重写时的实际使用需要进行类型转换（String/int 等）
     */

    //存储方式自行选择
    protected List<GoodsBaseModel> goodsDatataList;
    protected Map<String, GoodsBaseModel> goodsDataMap;


    //todo 重写构造方法，实现new对像时直接初始化数据
    public GoodsBaseData(){

    }

    /**
     * 查询商品列表
     * @param query 查询条件,可以重载方法增加查询参数
     * @return boolean
     */
    public abstract List<GoodsBaseModel> get(Object query);


    /**
     * 录入商品
     * @param goodsBaseModel 要保存的数据模型
     * @return boolean
     */
    public abstract boolean save(GoodsBaseModel goodsBaseModel);


    /**
     * 编辑商品
     * @param goodsBaseModel 要保存的数据模型
     * @return boolean
     */
    public abstract boolean update(GoodsBaseModel goodsBaseModel);


    /**
     * 删除商品
     * @param primaryKey 通过商品编号删除商品
     * @return boolean
     */
    public abstract boolean delete(Object primaryKey);
}
